Digital signal processing (DSP) has become a common approach to processing signals within a wide variety of applications, even replacing analog signal processing completely in many applications. DSP applications include audio and speech signal processing, sonar and radar signal processing, sensor array processing, spectral estimation, statistical signal processing, digital image processing, signal processing for communications, biomedical signal processing, seismic data processing, etc. Typically in the past DSP algorithms were run on standard computers or on specialized processors called digital signal processors (DSPs), or on purpose-built hardware such as application-specific integrated circuit (ASICs). Today there are additional technologies used for digital signal processing including more powerful general purpose microprocessors, field-programmable gate arrays (FPGAs), digital signal controllers (mostly for industrial apps such as motor control), and stream processors, among others which are bringing DSP processing into many devices including consumer portable electronic devices.
A common function implemented with DSP is filtering. A special class of filters is all-pass filters. As opposed to passband, high pass and low pass filters. An all-pass filter is an electronic filter that passes all frequencies equally, but may change phase relationships between various frequencies. It does this by varying its propagation delay with frequency while maintaining signal amplitude. Generally, the filter is described by the frequency at which the phase shift reaches a predetermined value. For a first-order all pass filter this is 90°, whilst for a second order all-pass this is −180°. There are many known uses for digital all-pass filters.
In DSP processing of digital representations of signals within a digital computer, diametrically opposed demands which are difficult to satisfy simultaneously often exist. For instance, latency should be very small in order to enable real time processing of signals. Typically, this requires very fast processing to allow complex processing to be applied to broad bandwidth signals. In order to support faster processing of digital signals, either faster circuitry is used, increasing expense, or a simpler process is employed, typically providing significantly less quality performance. Simpler processes greatly limit options while greater costs affect a products acceptance.
As a result many researchers have sought to reduce computational complexity of all-pass filters for DSP applications. For example, Regalia et al (P. A. Regalia, S. K. Mitra, and P. P. Vaidyanathan; “The digital all-pass filter: A versatile signal processing building block”, Proc. of the IEEE, 76(1):19-37, January 1988) use a normalized lattice according to the prior art. This approach implemented in a DSP all-pass filter required 2 unit delays, 8 multiplications, and 4 additions. Each multiplication and addition operation consuming processor cycles whilst unit delays require memory storage operations consuming memory, power and processor operations.
A modified approach employing a Gray-Markel lattice (see J.D. Markel & A.H. Gray, Jr. (1976), “Linear Prediction of Speech”, Springer Verlag, Berlin) reduces the number of multiplications from 8 to 2 whilst increasing the number of additions from 4 to 6. Similarly Stilson (see Stilson, Timothy S., “Efficiently-Variable Non-Oversampled Algorithms in Virtual Analog Music Synthesis - A Root-Locus Perspective, Doctoral Thesis, Stanford University, Department of Electrical Engineering, June 2006, Appendix E - On the Classic Allpass Filter Forms, pp. 353-362) addressed the second-order all-pass filter using filter designs which are comparable to Direct-Form-1(DF1) and Transposed Direct-Form-2(TDF2) designs, outlined below in respect of the invention, but they were still lattice filter designs. Stilson's two forms corresponding to forward and reverse lattice designs. The DF1-like design of Stilson reduces the number of multiplications compared to Regalia from 8 to 2 but increases the number of delays from 2 to 4. The TDF2-like design returns to only 2 delays but require 4 multiply operations and 4 add operations. Whilst for the first order filters, namely Direct Form (DF1 and DF2 respectively) and Transposed Direct Form (TDF1 and TDF2 respectively), the Stilson filters are equivalent they are not interchangeable. This however does not hold true for higher order filters.
TABLE 1DSP Element Requirements of Prior Art Second-Order All-Pass FiltersUnit Delays(memory storageTypeoperations)MultipliesAddsRegalia Normalized Lattice284Gray-Markel Lattice226Stilson DF1-like424Stilson TDF2-like244
Accordingly it would be beneficial to reduce the computational requirements of an all-pass filter further with respect to these prior art solutions.